using System.Collections;
using System.Collections.Generic;

namespace Graph
{
    public interface IBasicGraph
	{
		void AddVertex(Vertex vertex);
		void AddEdge(Vertex startVertex, Vertex endVertex);
		void RemoveVertex(Vertex v);
		void RemoveEdge(Vertex from, Vertex to);
		bool ContainsVertex(Vertex vertex);
		bool IsAdjacent(Vertex startVertex, Vertex endVertex);
		IList GetAdjacencies(Vertex vertex);
		IEnumerator<Vertex> Vertices();
		bool IsEmpty();
		int GetNoOfVertices();
		int GetNoOfEdges();
		void Clear();
        Vertex findVertex(string name);

        IList DepthFirstSearch(Vertex v);
	    IList BredthFirstSearch(Vertex ve);
	}
}
